package jnpf.fico.model.bill;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import jnpf.fico.entity.ZcBillItemEntity;
import lombok.Data;

import java.math.BigDecimal;

/**
 * @description: 费用明细实体类
 * @author: zhengxiong.jiang
 * @createDate: 2024-10-23
 * @version: 1.0
 */
@Data
public class ZcBillCostInfoDTO {

    /**
     * 合同id
     */
    @TableId("F_ID")
    private String id;

    /**
     * 周期类型
     */
    @TableField("CYCLE_TYPE")
    private String cycleType;

    /**
     * 周期单价
     */
    @TableField("CYCLE_PRICE")
    private String cyclePrice;

    /**
     * 应收(本)金额
     */
    @TableField("RECEIVE_AMOUNT")
    private BigDecimal receiveAmount;
    /**
     * 实际应收(本)金额
     */
    @TableField("REAL_AMOUNT")
    private BigDecimal realAmount;
    /**
     * 待收(本)金额
     */
    @TableField("PEND_AMOUNT")
    private BigDecimal pendAmount;
    /**
     * 已收
     */
    @TableField("PEND_AMOUNT")
    private BigDecimal receivedAmount;


    /**
     * 费用项
     */
    @TableField("EXPENSE_ITEM")
    private String expenseItem;

    /**
     * 状态
     */
    @TableField("STATUS")
    private Integer status;

    /**
     * 本金
     */
    private String principal;

    /**
     * 滞纳金
     */
    private String lateFee;

    public ZcBillCostInfoDTO(){

    }

    public ZcBillCostInfoDTO(String expenseItem, Integer status, String principal,
                             String lateFee,ZcBillItemEntity zcBillItemEntity){
        this.expenseItem = expenseItem;
        this.status = status;
        this.principal = principal;
        this.lateFee = lateFee;
        this.id = zcBillItemEntity.getId();
        this.cyclePrice = zcBillItemEntity.getCyclePrice();
        this.cycleType = zcBillItemEntity.getCycleType();
        this.receiveAmount = zcBillItemEntity.getReceiveAmount();
        this.pendAmount = zcBillItemEntity.getPendAmount();
        this.receivedAmount = zcBillItemEntity.getReceivedAmount();
        this.realAmount = zcBillItemEntity.getRealAmount();
    }

}
